<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1. push
        // 参数：接收一个或多个参数
        // 作用：向指定数组尾部添加元素
        // 返回值：新数组的长度
        // 例如：
        const arr = ['a', 'b', 'c']
        arr.push('d')
        console.log(arr) // ['a', 'b', 'c', 'd']

        const res = arr.push('e', 'f')
        console.log(arr) // ['a', 'b', 'c', 'd', 'e', f]
        console.log(res) // 6


        // 1.unshift
        // 参数：接收一个或者多个参数
        // 作用：向指定的数组头部添加元素
        // 返回值：数组的长度 length
        const arr1 = [1,4,5]
        console.log(arr1.unshift(1,1,4)) // 6
        console.log(arr1) //[1,1,4,5,1,4]

        // 2.pop
        // 参数：没有
        // 作用：删除数组最后一个元素
        // 返回值：被删除的元素
        const arr2 = ['xiaomi', 'wawei']
        console.log(arr2.pop()) // wawei
        console.log(arr2) // ['xiaomi']

        // 3.shift
        // 参数：没有
        // 作用：删除数组第一个元素
        // 返回值：被删除的元素
        const arr3 = ['wawei', 'homo']
        console.log(arr3.shift()) // wawei
        console.log(arr3) // ['homo']

        // 4.splice
        // 参数：(索引,元素数)
        // 作用：删除索引下标前/后的n个元素数，不包含索引值元素本身
        // 返回值：一个被删除的元素的数组
        const arr4 = ['珠海小厂','houmi', '雷军！金凡！', 'wawei', 'homo']
        console.log(arr4.splice(3,2)) // ['wawei', 'homo']
        console.log(arr4) // ['珠海小厂','houmi', '雷军！金凡！']

        // 5.reduce
        // 参数：回调函数，（累计值prev, 当前元素item[, 索引号index][, 原数组original]）起始值，如果起始值不写会使用数组的第 0 个值并且从第二个值开始遍历
        // 作用：返回函数累计处理的结果通常用于求和
        // 返回值： 计算后的 number
        const arr5 = [114,514,19,19,19]
        const newArr5 = arr5.reduce((p,i) => {return p += i},0)
        console.log(newArr5) // 685

        // 6.join
        // 参数：[分隔符separator]，分隔符可选参数，不设置默认为","
        // 作用：用于吧数组转化为字符串
        // 返回值：字符串
        const arr6_ = [1,1,4,5,1,4].join()
        console.log(arr6_) // 1,1,4,5,1,4
        const arr6 = ["ko","ko","da","yo"].join('~')
        console.log(arr6) // ko~ko~da~yo

        // 7.forEach
        // 参数：回调函数，(当前元素item[, 索引号index][, 原数组original])，索引号和原数组可以不写
        // 作用：用于遍历数组，以及输出、打印值
        // 返回值： 没有
        const arr7 = ['Hi-Pass', 'XYN']
        arr7.forEach(i=>console.log(i)) 
        // Hi-Pass
        // XYN

        // 8.every
        // 参数：回调函数（当前元素item[, 索引号index][, 原数组original]）
        // 作用：每个值都得大于
        // 返回值：布尔值
        const arr8 = [2,5,4,8]
        const arr8D = arr8.every(i => i > 3)
        console.log(arr8D); // false
    </script>
</body>
</html>